#此文件内容为测试相关的配置文件
import datetime
import os.path
import sys
from selenium import webdriver
from selenium.webdriver.edge.service import Service



#创建一个浏览器配置
class Driver:
    #类成员
    driver = ""
    #def __int__(self) 实例被强制转换成 int 时，Python 会自动调用它，并把你返回的整数当作转换结果
    def __init__(self):
        #service表示指定的浏览器的服务，options表示浏览器的参数配置。
        # EdgeChromiumDriverManager().install()，webdriver-manager 去官方源检测 OS、版本，下载 / 缓存最新的 msedgedriver.exe，并返回其绝对路径。
        options = webdriver.EdgeOptions()
        #self.driver = webdriver.Edge(service=Service(EdgeChromiumDriverManager().install()),options=options)
        self.driver = webdriver.Edge(service=Service("D:\\Browsers\\edgedriver_win64\\msedgedriver.exe"),options=options)
    def getScreeShot(self):
        #创建屏幕截图
        #图片文件名称：20xx-xx-xx-xxx.png

        dirname = datetime.datetime.now().strftime("%Y-%m-%d")
        #判断文件Images文件夹是否已经存在，若不存在则创建文件夹
        if not os.path.exists("../Images/"+dirname):
            os.mkdir("../Images/"+dirname)

        # 图片的路径：../Images/方法名-20xx-xx-xx/20xx-xx-xx-xx.png
        #sys._getframe()拿到调用者栈帧，.f_back是往回跳一帧，因为它是写在Utils里面的，而调用者在上一桢。
        #.f_code具体到代码对象，.co_name这段代码的名称
        filename = sys._getframe(0).f_back.f_code.co_name +"-" + datetime.datetime.now().strftime(
            '%Y-%m-%d-%H-%M-%S') + ".png"
        self.driver.save_screenshot("../Images/"+dirname+"/"+filename)
#创建Driver类对象，其它类调用通过BlogDriver调用
BlogDriver = Driver()
